package com.ctshk.rpc.order.goods.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 商品訂單分頁列表-DTO参数
 * </p>
 *
 * @author 姜斌文
 * @since 2021-04-23
 */
@Data
@ApiModel(value = "OrderPageListDTO对象", description = "商品訂單分頁列表")
public class OrderPageListDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单Id")
    private Long id;

    @ApiModelProperty(value = "订单编号")
    private String orderNumber;

    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "付款状态:1：待支付;2：已付款")
    private Integer paymentStatus;

    @ApiModelProperty(value = "订单来源id：商城，小店，门店 （存取id)")
    private Long sourceId;

    @ApiModelProperty(value = "订单来源类型:1：商城；2：小店；3：门店")
    private Integer sourceType;

    @ApiModelProperty(value = "订单来源名称")
    private String sourceName;

    @ApiModelProperty(value = "下单用户id")
    private Long userId;

    @ApiModelProperty(value = "下单用户名称")
    private String userName;

    @ApiModelProperty(value = "运费金额-運費模板")
    private BigDecimal freightAmount;

    @ApiModelProperty(value = "配送方式：用户下单时选择-1：物流配送(订单收货人信息表); 2：门店自提（订单提货人信息表）")
    private Integer deliveryMode;

    @ApiModelProperty(value = "订单状态:1：待付款; 2：待发货; 3：待收货; 4：已完成; 5：已取消")
    private Integer orderStatus;

    @ApiModelProperty(value = "核销状态:1：待核销; 2：已核销")
    private Integer writeOffStatus;

    @ApiModelProperty(value = "订单核销码")
    private String orderWriteOffNumber;

    @ApiModelProperty(value = "核销码核对时间")
    private LocalDateTime writeOffTime;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    // 收货人信息
    @ApiModelProperty(value = "收货人")
    private String consignee;

    @ApiModelProperty(value = "收货人手机号码")
    private String consigneePhone;

    @ApiModelProperty(value = "收货人邮箱")
    private String consigneeEmail;

    @ApiModelProperty(value = "收货人区域id")
    private Long consigneeAreaId;

    @ApiModelProperty(value = "收货人区域名称")
    private String consigneeAreaName;

    @ApiModelProperty(value = "收货人地址")
    private String consigneeAddress;


    // 提货人信息
    @ApiModelProperty(value = "提货人")
    private String shipper;

    @ApiModelProperty(value = "提货人手机号码")
    private String shipperPhone;

    @ApiModelProperty(value = "提货门店id")
    private Long shipperStoreId;

    @ApiModelProperty(value = "提货门店名称")
    private String shipperStoreName;

    @ApiModelProperty(value = "提货门店地址")
    private String shipperStoreAddress;

    @ApiModelProperty(value = "提货日期")
    private LocalDateTime shipperDate;

    //订单商品明细
    @ApiModelProperty(value = "订单商品明细")
    List<OrderCommodityPageListDetailDTO> orderCommodityPageListDetailDTOList;
}
